﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Unimaq.Macroprocesos.AccesoDatos
{
    public class EmpresaDAO
    {
        private ProcesosUnimaqEntities conexion;

        public List<Empresa> Listar()
        {
            using (conexion = new ProcesosUnimaqEntities())
            {
                return conexion.Empresa.Include("Proceso").ToList();
            }
        }

        public int Registrar(Empresa nuevaEmpresa)
        {
            using (conexion = new ProcesosUnimaqEntities())
            {                
                conexion.Empresa.Add(nuevaEmpresa);
                return conexion.SaveChanges(); 
            }
        }

        public int Actualizar(Empresa selectedEmpresa, Empresa updEmpresa)
        {
            using (conexion = new ProcesosUnimaqEntities())
            {
                conexion.Empresa.Attach(selectedEmpresa);
                selectedEmpresa.NombreEmpresa = updEmpresa.NombreEmpresa;
                selectedEmpresa.Descripcion = updEmpresa.Descripcion;
                return conexion.SaveChanges();
            }
        }

        public int Eliminar(Empresa selectedEmpresa)
        {
            int result = 0;

            using (conexion = new ProcesosUnimaqEntities())
            {
                Empresa deleteEmpresa = conexion.Empresa.Single(x => x.Id == selectedEmpresa.Id);
                //conexion.Empresa.Attach(selectedEmpresa);
                conexion.Empresa.Remove(deleteEmpresa);
                result = conexion.SaveChanges();
            }

            return result;
        }
    }
}
